//同以目录下的文件更名：
var fs = require("fs");
var path = require("path");
var os = require("os");
// 包含当前文件夹所有内容的数组
var allFiles = fs.readdirSync(__dirname);
// 更名操作
function my_rename(oldName, newName) {
    fs.rename(oldName, newName, function (err) {
        if (err) {
            throw err;
        }
        // console.log("rename is done!");
    });
}
// 验证结尾后缀是否为真。str文件的名字。appoint文件后缀的名字
function my_validationEnd(str, appoint) {
    // 不区分大小写全部转换成小写。
    str = str.toLowerCase();
    var tempArr = str.split(".");
    var endStr = tempArr[tempArr.length - 1];
    if (appoint === endStr) {
        return true;
    }
    return false;
}
// 过滤数组的方法，返回我想要的文件类型的数组。第一个参数文件数组。第二个参数后缀名，字符串。
function type_arr(arr, typeStr) {
    var newArr = [];
    for (var i in arr) {
        if (my_validationEnd(arr[i], typeStr)) {
            newArr.push(arr[i]);
        }
    }
    return newArr;
}
// 时间戳转化为时间
function timeStampToTime(timeStamp) {
    var date = new Date(timeStamp); // 参数需要毫秒数，所以这里将秒数乘于 1000
    Y = date.getFullYear() + "-";
    M = (date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1) + "-";
    D = date.getDate() + " ";
    h = date.getHours() + ":";
    m = date.getMinutes() + ":";
    s = date.getSeconds();
    return Y + M + D + h + m + s;
}
// 获取文件的所有信息
function getFileMsg(file) {
    var msg = fs.statSync(file);
    // console.log('m',msg);
    /* {
      dev: 1781885125,
      mode: 33206,
      nlink: 1,
      uid: 0,
      gid: 0,
      rdev: 0,
      blksize: 4096,
      ino: 281474976900432,
      size: 0,
      blocks: 0,
      atimeMs: 1689313507912.332,
      mtimeMs: 1689313507912.332,
      ctimeMs: 1689313514053.8118,
      birthtimeMs: 1689313507912.332,
      atime: 2023-07-14T05:45:07.912Z,
      mtime: 2023-07-14T05:45:07.912Z,
      ctime: 2023-07-14T05:45:14.054Z,
      birthtime: 2023-07-14T05:45:07.912Z
    } */
    // birthtime创建日期 mtime修改日期 我们需要用到的是Mtime
    return {
        atime2: timeStampToTime(msg.atime),
        mtime2: timeStampToTime(msg.mtime),
        mtime3: timeStampToTime(msg.mtime).slice(0, 10),
        ctime2: timeStampToTime(msg.ctime),
        birthtime2: timeStampToTime(msg.birthtime),
    };
}
function my_rename_add_date(filetype, moreInformation) {
    var typeArray = type_arr(allFiles, filetype);
    typeArray.forEach(function (item) {
        // console.log(item,'文件信息');
        if (moreInformation) {
            var suffixArr = item.split("." + filetype);
            var noSuffixItem = suffixArr[0];
            my_rename(item, noSuffixItem + moreInformation + getFileMsg(item).mtime3 + "." + filetype);
        }
        else {
            // console.log(getFileMsg(item).mtime3, '文件信息');
            var suffixArr = item.split("." + filetype);
            var noSuffixItem = suffixArr[0];
            my_rename(item, noSuffixItem + getFileMsg(item).mtime3 + "." + filetype);
        }
    });
    console.log('后缀和日期添加成功！');
}
// 测试
my_rename_add_date("mp4");
